{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MNIST Convolutional Network"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 建立卷積神經網路 (convolutional neural network)\n",
    "* 用 MNIST 來訓練 CNN\n",
    "* 評估模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: tensorflow in /usr/local/lib/python2.7/dist-packages\n",
      "Requirement already satisfied: mock>=2.0.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow)\n",
      "Requirement already satisfied: numpy>=1.11.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow)\n",
      "Requirement already satisfied: protobuf==3.1.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow)\n",
      "Requirement already satisfied: wheel in /usr/local/lib/python2.7/dist-packages (from tensorflow)\n",
      "Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow)\n",
      "Requirement already satisfied: funcsigs>=1; python_version < \"3.3\" in /usr/local/lib/python2.7/dist-packages (from mock>=2.0.0->tensorflow)\n",
      "Requirement already satisfied: pbr>=0.11 in /usr/local/lib/python2.7/dist-packages (from mock>=2.0.0->tensorflow)\n",
      "Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf==3.1.0->tensorflow)\n",
      "Extracting MNIST_data/train-images-idx3-ubyte.gz\n",
      "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n",
      "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n",
      "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n"
     ]
    }
   ],
   "source": [
    "!pip install tensorflow\n",
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "%matplotlib inline\n",
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "mnist = input_data.read_data_sets(\"MNIST_data/\", one_hot=True)\n",
    "sess = tf.InteractiveSession()\n",
    "x = tf.placeholder(tf.float32, shape=[None, 784])\n",
    "y_ = tf.placeholder(tf.float32, shape=[None, 10])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 建立多層的卷積神經網路\n",
    "\n",
    "前一個模型我們得到 92% 的準確率是非常不及格的．在這裡我們將建立一個更為適當且複雜的模型．也就是一個小型的 **卷積神經網路** (convolutional neural network)．在 MNIST 的準確度會提升到 99.2% 或許不是最好但也相當不錯的成績．"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 權重初始化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在建立模型之前我們需要建立一系列的權重 (weights) 還有偏移量 (biases)．為了避免 權重 (weight) 過於對稱還有 0 梯度 (gradient) 我們必須加入一小部分的為正的噪音 (noise)．因為我們使用的是 [ReLU](https://en.wikipedia.org/wiki/Rectifier_(neural_networks))，因此特別適合在偏移量 (bias) 初始化為為正的數值來避免 **'神經元死去 (dead neurons)'**．這裡建立了兩個函數來避免每次使用他的時候都重新建立程式碼．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def weight_variable(shape):\n",
    "    initial = tf.truncated_normal(shape, stddev=0.1)\n",
    "    return tf.Variable(initial)\n",
    "def bias_variable(shape):\n",
    "    initial = tf.constant(0.1, shape = shape)\n",
    "    return tf.Variable(initial)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 卷積還有池化 (Convolution and Pooling)\n",
    "\n",
    "(在這裡實在不知道怎麼翻譯，因此用阿陸仔的名詞來稱呼)\n",
    "\n",
    "Tensorflow 同樣給我們很大的彈性來做卷積還有池化這兩個動作．如何處理邊界? 我們的 stride 大小要設多少? 在這個範例中，我們會一直使用 vanilla 的版本．我們的卷積過程中的參數 `stride` 會是 1 而 `padded` 則是 0．也因此輸入還有輸出都會是同樣的大小 (size)．而我們的 polling 則是用 2X2 的傳統 polling 來做．為了讓我們的程式更加簡潔，我們同樣把這樣的操作抽象成函數．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def conv2d(x, W):\n",
    "    return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding = 'SAME')\n",
    "\n",
    "def max_pool_2x2(x):\n",
    "    return tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,2,2,1], padding = 'SAME')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第一個卷積層\n",
    "\n",
    "我們現在可以來實現第一個卷積層．他會先有一個卷積接著一個 max polling 來完成．這個卷積會從 5x5 的 patch 算出 32 個特徵．他的權重 tensor 的形狀是 [5, 5, 1, 32]．頭兩個維度是 patch 的大小，下一個則是輸入的 channels，最後一個則是輸出的 channels．同樣的在輸出也會有偏移量向量 (bias vector)．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "W_conv1 = weight_variable([5, 5, 1, 32])\n",
    "b_conv1 = bias_variable([32])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "現在要來把輸入 `x` 來導入我們剛剛建立的第一個卷積層，那必須先把 `x` 轉換成一個 4d 的 tensor，其中第二個和第三個維度對應到了圖片的寬度和高度，而最後一個則對應到了顏色的 channel 數 (這裡因為是灰階的所以 channel 為 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "x_image = tf.reshape(x, [-1, 28, 28, 1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我們接下來把 `x_image` 還有權重 tensor 輸入剛剛定義的卷積函數，再來加上偏移值 (bias) 後輸入 **ReLU** 函數，最後經過 max pooling． `max_pool_2x2` 函數會把圖片的大小縮成 14x14．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)\n",
    "h_pool1 = max_pool_2x2(h_conv1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第二個卷積層\n",
    "\n",
    "為了建立比較深度的神經網路，我們把許多層疊在一起．第二層會從 5x5 的 patch 中取出 64 個特徵．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "W_conv2 = weight_variable([5, 5, 32, 64])\n",
    "b_conv2 = bias_variable([64])\n",
    "\n",
    "h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)\n",
    "h_pool2 = max_pool_2x2(h_conv2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 密集的全連接層\n",
    "\n",
    "現在讓我們想像圖片的大小已經被縮成了 7x7 的大小，我們加入一個 1024 的全連接層來把前面的全部輸出輸入全連接層．其中包含了先把 pooling 的輸出展開後乘上一個權重矩陣再加上一個偏移量向量，最後輸入 ReLU．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "W_fc1 = weight_variable([7 * 7 * 64, 1024])\n",
    "b_fc1 = bias_variable([1024])\n",
    "\n",
    "h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64])\n",
    "h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dropout\n",
    "\n",
    "為了減少 overfitting，在輸出層之前我們會加入 dropout 層．首先我們建立了一個站位子 (`placeholder`) 來代表神經元在 dropout 過程中不變的機率．這可以讓我們決定要在訓練的時候打開 dropout，而在測試的時候關閉 dropout． Tensorflow 的 `tf.nn.dropout` 除了會遮蔽神經元的輸出以外也會自動對輸入值做 scaling，所以我們在使用的時候可以不用考慮 scale．\n",
    "\n",
    "註: 對於這種比較小的卷積網路，有沒有 dropout 對於成果不會有太大影響．dropout 是一個非常好的方法來減低 overfitting，但僅限於比較大的神經網路．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "keep_prob = tf.placeholder(tf.float32)\n",
    "h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 輸出層\n",
    "\n",
    "最後我們加上像之前 softmax regression 一樣的層．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 217,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "W_fc2 = weight_variable([1024, 10])\n",
    "b_fc2 = bias_variable([10])\n",
    "\n",
    "y_conv = tf.matmul(h_fc1_drop, W_fc2) + b_fc2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 訓練以及評估模型\n",
    "\n",
    "那我們的模型表現的如何呢? 這裡我們會用之前 `Softmax` 範例的大部分程式碼來訓練以及評估這個模型．\n",
    "\n",
    "不過有幾點不同的是:\n",
    "\n",
    "* 我們會把 gradient descent 最佳化演算法換成更為精密的 ADAM 最佳化演算法．\n",
    "* 我們會在 `feed_dict` 參數之中加入 `keep_prob` 這個參數來控制 dropout 的機率．\n",
    "* 我們會在每一百個回合的訓練中印出紀錄\n",
    "\n",
    "現在你可以來執行這段程式，但它需要 20,000 回合的訓練，可能會需要比較久的時間 (大概半小時)，當然如果你的處理器比較好的話也可能會比較快．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 0, training accuracy 0.08\n",
      "step 100, training accuracy 0.8\n",
      "step 200, training accuracy 0.9\n",
      "step 300, training accuracy 0.94\n",
      "step 400, training accuracy 0.96\n",
      "step 500, training accuracy 0.9\n",
      "step 600, training accuracy 0.92\n",
      "step 700, training accuracy 0.94\n",
      "step 800, training accuracy 0.9\n",
      "step 900, training accuracy 0.96\n",
      "step 1000, training accuracy 0.98\n",
      "step 1100, training accuracy 0.96\n",
      "step 1200, training accuracy 0.98\n",
      "step 1300, training accuracy 0.98\n",
      "step 1400, training accuracy 0.92\n",
      "step 1500, training accuracy 0.96\n",
      "step 1600, training accuracy 0.96\n",
      "step 1700, training accuracy 0.96\n",
      "step 1800, training accuracy 0.98\n",
      "step 1900, training accuracy 0.98\n",
      "step 2000, training accuracy 0.98\n",
      "step 2100, training accuracy 0.96\n",
      "step 2200, training accuracy 0.94\n",
      "step 2300, training accuracy 0.98\n",
      "step 2400, training accuracy 1\n",
      "step 2500, training accuracy 0.98\n",
      "step 2600, training accuracy 0.96\n",
      "step 2700, training accuracy 1\n",
      "step 2800, training accuracy 0.98\n",
      "step 2900, training accuracy 0.98\n",
      "step 3000, training accuracy 0.96\n",
      "step 3100, training accuracy 0.98\n",
      "step 3200, training accuracy 0.98\n",
      "step 3300, training accuracy 1\n",
      "step 3400, training accuracy 0.98\n",
      "step 3500, training accuracy 0.92\n",
      "step 3600, training accuracy 1\n",
      "step 3700, training accuracy 0.98\n",
      "step 3800, training accuracy 0.98\n",
      "step 3900, training accuracy 1\n",
      "step 4000, training accuracy 0.98\n",
      "step 4100, training accuracy 0.98\n",
      "step 4200, training accuracy 1\n",
      "step 4300, training accuracy 0.98\n",
      "step 4400, training accuracy 0.96\n",
      "step 4500, training accuracy 0.98\n",
      "step 4600, training accuracy 0.98\n",
      "step 4700, training accuracy 0.98\n",
      "step 4800, training accuracy 1\n",
      "step 4900, training accuracy 1\n",
      "step 5000, training accuracy 0.96\n",
      "step 5100, training accuracy 0.96\n",
      "step 5200, training accuracy 0.96\n",
      "step 5300, training accuracy 0.98\n",
      "step 5400, training accuracy 1\n",
      "step 5500, training accuracy 0.96\n",
      "step 5600, training accuracy 1\n",
      "step 5700, training accuracy 1\n",
      "step 5800, training accuracy 0.98\n",
      "step 5900, training accuracy 0.98\n",
      "step 6000, training accuracy 0.98\n",
      "step 6100, training accuracy 1\n",
      "step 6200, training accuracy 0.98\n",
      "step 6300, training accuracy 1\n",
      "step 6400, training accuracy 1\n",
      "step 6500, training accuracy 0.96\n",
      "step 6600, training accuracy 0.98\n",
      "step 6700, training accuracy 1\n",
      "step 6800, training accuracy 0.98\n",
      "step 6900, training accuracy 0.98\n",
      "step 7000, training accuracy 0.96\n",
      "step 7100, training accuracy 1\n",
      "step 7200, training accuracy 1\n",
      "step 7300, training accuracy 0.98\n",
      "step 7400, training accuracy 0.98\n",
      "step 7500, training accuracy 1\n",
      "step 7600, training accuracy 1\n",
      "step 7700, training accuracy 1\n",
      "step 7800, training accuracy 1\n",
      "step 7900, training accuracy 1\n",
      "step 8000, training accuracy 1\n",
      "step 8100, training accuracy 0.96\n",
      "step 8200, training accuracy 1\n",
      "step 8300, training accuracy 0.98\n",
      "step 8400, training accuracy 1\n",
      "step 8500, training accuracy 0.98\n",
      "step 8600, training accuracy 0.98\n",
      "step 8700, training accuracy 1\n",
      "step 8800, training accuracy 0.98\n",
      "step 8900, training accuracy 1\n",
      "step 9000, training accuracy 1\n",
      "step 9100, training accuracy 1\n",
      "step 9200, training accuracy 1\n",
      "step 9300, training accuracy 1\n",
      "step 9400, training accuracy 1\n",
      "step 9500, training accuracy 1\n",
      "step 9600, training accuracy 0.98\n",
      "step 9700, training accuracy 0.98\n",
      "step 9800, training accuracy 0.98\n",
      "step 9900, training accuracy 0.98\n",
      "step 10000, training accuracy 1\n",
      "step 10100, training accuracy 1\n",
      "step 10200, training accuracy 1\n",
      "step 10300, training accuracy 1\n",
      "step 10400, training accuracy 1\n",
      "step 10500, training accuracy 0.98\n",
      "step 10600, training accuracy 1\n",
      "step 10700, training accuracy 1\n",
      "step 10800, training accuracy 1\n",
      "step 10900, training accuracy 0.96\n",
      "step 11000, training accuracy 1\n",
      "step 11100, training accuracy 1\n",
      "step 11200, training accuracy 1\n",
      "step 11300, training accuracy 1\n",
      "step 11400, training accuracy 1\n",
      "step 11500, training accuracy 0.98\n",
      "step 11600, training accuracy 1\n",
      "step 11700, training accuracy 0.98\n",
      "step 11800, training accuracy 0.98\n",
      "step 11900, training accuracy 1\n",
      "step 12000, training accuracy 0.98\n",
      "step 12100, training accuracy 1\n",
      "step 12200, training accuracy 1\n",
      "step 12300, training accuracy 0.98\n",
      "step 12400, training accuracy 1\n",
      "step 12500, training accuracy 1\n",
      "step 12600, training accuracy 1\n",
      "step 12700, training accuracy 1\n",
      "step 12800, training accuracy 1\n",
      "step 12900, training accuracy 0.98\n",
      "step 13000, training accuracy 1\n",
      "step 13100, training accuracy 0.98\n",
      "step 13200, training accuracy 1\n",
      "step 13300, training accuracy 1\n",
      "step 13400, training accuracy 1\n",
      "step 13500, training accuracy 1\n",
      "step 13600, training accuracy 0.98\n",
      "step 13700, training accuracy 1\n",
      "step 13800, training accuracy 1\n",
      "step 13900, training accuracy 0.98\n",
      "step 14000, training accuracy 1\n",
      "step 14100, training accuracy 1\n",
      "step 14200, training accuracy 0.98\n",
      "step 14300, training accuracy 1\n",
      "step 14400, training accuracy 1\n",
      "step 14500, training accuracy 1\n",
      "step 14600, training accuracy 1\n",
      "step 14700, training accuracy 1\n",
      "step 14800, training accuracy 1\n",
      "step 14900, training accuracy 0.98\n",
      "step 15000, training accuracy 1\n",
      "step 15100, training accuracy 1\n",
      "step 15200, training accuracy 0.98\n",
      "step 15300, training accuracy 0.98\n",
      "step 15400, training accuracy 1\n",
      "step 15500, training accuracy 1\n",
      "step 15600, training accuracy 1\n",
      "step 15700, training accuracy 1\n",
      "step 15800, training accuracy 1\n",
      "step 15900, training accuracy 1\n",
      "step 16000, training accuracy 1\n",
      "step 16100, training accuracy 0.98\n",
      "step 16200, training accuracy 0.98\n",
      "step 16300, training accuracy 1\n",
      "step 16400, training accuracy 0.98\n",
      "step 16500, training accuracy 1\n",
      "step 16600, training accuracy 1\n",
      "step 16700, training accuracy 1\n",
      "step 16800, training accuracy 0.98\n",
      "step 16900, training accuracy 1\n",
      "step 17000, training accuracy 1\n",
      "step 17100, training accuracy 1\n",
      "step 17200, training accuracy 1\n",
      "step 17300, training accuracy 1\n",
      "step 17400, training accuracy 1\n",
      "step 17500, training accuracy 1\n",
      "step 17600, training accuracy 1\n",
      "step 17700, training accuracy 1\n",
      "step 17800, training accuracy 1\n",
      "step 17900, training accuracy 0.98\n",
      "step 18000, training accuracy 1\n",
      "step 18100, training accuracy 0.98\n",
      "step 18200, training accuracy 1\n",
      "step 18300, training accuracy 1\n",
      "step 18400, training accuracy 1\n",
      "step 18500, training accuracy 1\n",
      "step 18600, training accuracy 1\n",
      "step 18700, training accuracy 1\n",
      "step 18800, training accuracy 1\n",
      "step 18900, training accuracy 1\n",
      "step 19000, training accuracy 1\n",
      "step 19100, training accuracy 1\n",
      "step 19200, training accuracy 1\n",
      "step 19300, training accuracy 1\n",
      "step 19400, training accuracy 1\n",
      "step 19500, training accuracy 1\n",
      "step 19600, training accuracy 1\n",
      "step 19700, training accuracy 1\n",
      "step 19800, training accuracy 1\n",
      "step 19900, training accuracy 0.98\n",
      "test accuracy 0.9888\n"
     ]
    }
   ],
   "source": [
    "cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_conv, y_))\n",
    "train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)\n",
    "correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1))\n",
    "accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n",
    "saver = tf.train.Saver()\n",
    "sess.run(tf.global_variables_initializer())\n",
    "for i in range(20000):\n",
    "  batch = mnist.train.next_batch(50)\n",
    "  if i%100 == 0:\n",
    "    train_accuracy = accuracy.eval(feed_dict={\n",
    "        x:batch[0], y_: batch[1], keep_prob: 1.0})\n",
    "    print(\"step %d, training accuracy %g\"%(i, train_accuracy))\n",
    "  train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})\n",
    "\n",
    "print(\"test accuracy %g\"%accuracy.eval(feed_dict={\n",
    "    x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))\n",
    "\n",
    "save_path = saver.save(sess, \"/root/model.ckpt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "最後的測試準確度大約為 99.2%\n",
    "\n",
    "我們學到了用 Tensorflow 是可以很快速而且簡單的建置，訓練，以及評估一個較為精密的深度學習模型．"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CNN 流程\n",
    "\n",
    "好的，我們現在已經成功了用 CNN 達到了非常不錯的準確率 (99.2%)，接下來就是來看一下到底它用了什麼樣的方法造成這麼厲害的結果，以及實現 CNN 的 Tensorflow 程式碼裡面的一些參數代表什麼意義？\n",
    "\n",
    "CNN 的用意，大概有以下三點:\n",
    "\n",
    "1. **圖片中的特徵往往比整張圖片還要小**\n",
    "\n",
    "   ex. 一張人臉照片中，幾個重要特徵會是眼睛，鼻子，耳朵．．．等．\n",
    "\n",
    "2. **而圖片中的特徵常常是會重複出現的**\n",
    "\n",
    "   ex. 一張人臉照片中，兩個眼睛特徵是非常相似的．\n",
    "\n",
    "3. **要盡量的減少神經網路中的參數**\n",
    "\n",
    "   ex. 如果輸入的圖片很大而且每個像素都連結到隱含層，這樣權重的數目會太多，導致計算困難．\n",
    "\n",
    "那根據以上幾點我們回來看一下 CNN 的結構\n",
    "\n",
    "![](http://imgur.com/bYFnDws.jpg)\n",
    "\n",
    "圖片輸入會經過兩個卷積層 (convolutional layer) 然後把它扳平 (Flatten) 之後進入全連結層 (Fully Connected Layer) 最後就是進入 Softmax 分類成 10 個數字．\n",
    "\n",
    "這些流程中的關鍵就是卷積層 (convolutional layer) ，卷積層的出現讓 CNN 可以達到上面的三個目標，接下來就讓我們一起看下去．\n",
    "\n",
    "## 卷積層 Convolutional Layer\n",
    "\n",
    "卷積層中有三個部分，我們會邊用邊用程式邊解說: \n",
    "\n",
    "* Convolution\n",
    "* ReLU\n",
    "* Max Pooling\n",
    "\n",
    "![](http://imgur.com/2KE40Oo.jpg)\n",
    "\n",
    "\n",
    "\n",
    "### 卷積層 Convolutional Layer\n",
    "\n",
    "以下是建立 `convolution` 的五行程式碼: \n",
    "\n",
    "```python\n",
    "def conv2d(x, W):\n",
    "    return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding = 'SAME')\n",
    "x_image = tf.reshape(x, [-1, 28, 28, 1])\n",
    "W_conv1 = weight_variable([5, 5, 1, 32])\n",
    "b_conv1 = bias_variable([32])\n",
    "result = conv2d(x_image, W_conv1) + b_conv1\n",
    "```\n",
    "我們先從 `x_image = tf.reshape(x, [-1, 28, 28, 1])` 開始看，它的用意是把圖片像素輸入變成一個 1x28x28x1 的四維矩陣．\n",
    "\n",
    "* 第一個參數為 -1 的意思是不管輸入有幾個，Tensorflow 會自動調整的意思，假設輸入 50 個圖片第一個維度就是 50．\n",
    "* 第二個第三個就是指數字圖片為 28 像素 x 28 像素 的意思\n",
    "* 最後一個則是指色階，這裡又稱 **channel**，這裡因為我們的輸入都是黑白灰階，因此值為 1．如果是彩色圖有 RGB 三原色，這裡的數值就是 3．\n",
    "\n",
    "`W_conv1 = weight_variable([5, 5, 1, 32])` 則是建立起過濾器 (filter)．過濾器我覺得也可以稱作特徵篩選器，可以想像說是負責來辨認圖片中的某些特徵，像是直線或是橫線或是轉彎處．\n",
    "\n",
    "* 一二三維的數字 `[5, 5, 1]` 代表著這個過濾器是一個 5x5x1 的矩陣，這跟上面的圖片一樣 5x5 代表著 5 像素 x 5 像素，而 1 則代表著灰階．\n",
    "* 最後一個數字 32 代表著我們建立了 32 個過濾器來篩選特徵．\n",
    "\n",
    "`b_conv1 = bias_variable([32])` 建立一個偏移值 (bias) 避免負數．\n",
    "\n",
    "好的那現在讓我們先看一下經過訓練後的前 16 個過濾器到底長得怎麼樣，因此我們必須先建立兩個工具函數，分別可以: \n",
    "1. 印出過濾器的權重值\n",
    "2. 印出輸入圖片經過過濾器後的輸出"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def plot_conv_weights(weights, num_filters, input_channel = 0):\n",
    "    \n",
    "    # 這裡的 w 我們預計是一個 4 維的 tensor，ex. [5, 5, 1, 32]\n",
    "    # 因此要先用 session 取出數值變成 ndarray\n",
    "    w = sess.run(weights)\n",
    "    \n",
    "    num_grids = int(math.ceil(math.sqrt(num_filters)))\n",
    "    w_min = np.min(w)\n",
    "    w_max = np.max(w)\n",
    "    \n",
    "    fig, axes = plt.subplots(num_grids, num_grids)\n",
    "    \n",
    "    for i, ax in enumerate(axes.flat):\n",
    "        if i < num_grids * num_grids:\n",
    "            img = w[:, :, input_channel, i]\n",
    "            \n",
    "            ax.imshow(img, vmin = w_min, vmax=w_max, interpolation = 'nearest', cmap = 'seismic')\n",
    "        \n",
    "        ax.set_xticks([])\n",
    "        ax.set_yticks([])\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "而它的結果為下圖，其中紅色表示大於零的值，藍色表示小於零的值．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nrKdW/NMJc9SzZ9Ea8Nxd3a3zkjTjV/7TJyTp4jF+Zka/J6zzy5Y1SC/k96b7xx47WSed5O34xRfT\nZhV6T7Azl17666RZt976ZzPRkTSnfGyUZFzpL0l6xR+z9lA/I6m0I+HNPPl663hDt9W6y59SNh66\n+EEVB8y1Mu29v+QPamvzM5LU0mJH3AfdbNuW/SyfDAEA4VGGAIDwKEMAQHiUIQAgPMoQABAeZQgA\nCI8yBACERxkCAMKjDAEA4VGGAIDwKEMAQHiUIQAgPOui7okTpeOP9wYsqn7TC0gaO+sOOyNJhQNG\n25m1awdY5w880B5RVqoWPa2a0gYr06/fWUmzXnrJv3R78OBHkmYddNAnrfMdHd31+utJo8rCnIuf\nV/FQ76Lk/nd6F2FLUuHTiZc463E7sXTpNdb5lgUN0u2323PKxSvXX29/2hm6YoU957mqKjsjSaec\nfbadueZx7/uioVRS1g3zyRAAEB5lCAAIjzIEAIRHGQIAwqMMAQDhUYYAgPAoQwBAeJQhACA8yhAA\nEB5lCAAIjzIEAIRHGQIAwst6UXeFJK1Y0WQPaG21I2pfudIPSZIW2Il587yLhBcvfvtrUGEPe3+r\nkKSmVavs4OLXqpMG7r9/SmpJ0qyOjgbr/I4dOd/zBu8ydknavt37GnbalJCRpMV2YsEC7/tw6dJ8\n73h5QnDn/Pl2ZmHCHEnqsnmzHyqVrONN75zf444LpQz/44VCYZyke61XkX/jS6XS9H39IvYWdvye\n2HP+seP82+OOs5ZhlaTRkpolbd0rL618VUiqlTSzVCqlPp/mfYcdvwt7zj92nH+Zd5ypDAEAyDN+\ngQYAEB5lCAAIjzIEAIRHGQIAwqMMAQDhUYYAgPAoQwBAeP8LhNmYF63Cn+MAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3ccae1fb90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_conv_weights(W_conv1, 16)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下來我們想看到每個過濾器對應的輸出是如何，所以我們要先定義一個印出 layer 輸出的函數"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_conv_layer(layer, image, num_filters):\n",
    "    # layer 輸入範例是 [batch_num, width, height, channels] ex. [1, 28, 28, 32]\n",
    "    # 這裡設定的 image 是單一個手寫字影像輸入\n",
    "    # 接下來把它餵入 tensorflow 的 session 跑出我們想要的輸出結果\n",
    "    output = sess.run(layer, feed_dict = {x: [image]})\n",
    "    \n",
    "    num_grids = int(math.ceil(math.sqrt(num_filters)))\n",
    "    \n",
    "    fig, axes = plt.subplots(num_grids, num_grids)\n",
    "    \n",
    "    for i, ax in enumerate(axes.flat):\n",
    "        if i < num_grids * num_grids:\n",
    "            img = output[0, :, :, i]\n",
    "            ax.imshow(img, interpolation='nearest', cmap='gray')\n",
    "        \n",
    "        ax.set_xticks([])\n",
    "        ax.set_yticks([])\n",
    "        \n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3ccb2c0910>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "output_conv1 = conv2d(x_image, W_conv1) + b_conv1\n",
    "image1 = mnist.test.images[0]\n",
    "plot_conv_layer(output_conv1, image1, 16)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "呃如果直接從圖片上面來看你看得出有什麼端倪嗎？\n",
    "\n",
    "我們可以發現幾點\n",
    "\n",
    "1. 如果過濾器中有藍色**橫線** (ex. 左下角) 那在輸出就會出現數字中有藍色**橫線**的地方\n",
    "2. 如果過濾器中有藍色**斜線** (ex. 右上角) 那在輸出就會出現數字中有藍色**斜線**的地方\n",
    "\n",
    "感覺這樣是不是每個過濾器所辨認到的 **特徵**都不一樣呢？接下來讓我們仔細看看 Filter, ReLU, MaxPooling 的細節．"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 過濾器 (Filter)\n",
    "\n",
    "從上面的結果中我們看到過濾器中似乎會對有同樣特徵的輸入產生反應，例如過濾器如果有紅色橫線的存在，那對應輸出圖片的紅色橫線就會特別明顯．那這段過程中過濾器和輸入圖片是如何的互動關係呢？\n",
    "\n",
    "答案是 : **Convolution！**\n",
    "\n",
    "避免掉了數學上的複雜我們直接用下面的 gif 來解釋，假設有一個 4 x 4 x 1 的輸入圖片，過濾器是 3 x 3 x 1，然後給定參數 stride = 1，可以看到過濾器開始從左上角往右以及往下和紅色的區域做點積 (每個對應元素相乘，最後全部相加)，得到的結果就是 2．再來我們會注意到紅色區域往右移了一格，而一格就是 stride 的值所對應的，同樣的當紅色區域到達最右邊後他會從左邊往下一格開始依序做點積，而最後的成果就是輸出矩陣了．\n",
    "\n",
    "我們可以依此類推，如果 stride = 2 那就是紅色區域一次會移動兩格的意思．\n",
    "\n",
    "![](http://imgur.com/8XHiO5I.gif)\n",
    "\n",
    "\n",
    "\n",
    "但這時侯回頭看一下 conv2d 的定義會看到還有一個參數值是 padding．\n",
    "\n",
    "```python\n",
    "def conv2d(x, W):\n",
    "    return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding = 'SAME')\n",
    "```\n",
    "\n",
    "padding 為 SAME 的意思是就是要讓輸入和輸出的大小是一樣的，因為從上面的例子看到經過 convolution 以後 size 變小了，那如果要一樣的話，我們做的事情就是把輸入一開始補上 0 如下圖，那再去跑一次 convolution 就會得到一樣大小的圖片了．\n",
    "\n",
    "![](http://imgur.com/qch3liz.jpg)\n",
    "\n",
    "## ReLU 激活函數\n",
    "\n",
    "在這裡我們會把上面的輸出都通過一個函數如下，其實就是 `x < 0` 的時候全部為 0，而 `x > 0` 則為 x．要做激活函數的原因是因為要模擬出非線性函數，簡單想像就是加入激活函數可以讓神經網路學到更多奇奇怪怪的東西．\n",
    "\n",
    "而之前小弟在學校訓練原始 nn 的時候好像是用 `sigmoid` or `tanh`，大概查了一下是因為 ReLU 更簡單 ，在深度的網路裡面計算更快．(結果小於零就認定你辨識不出來，就把你關掉！譬如說一個過濾器是來辨識眼睛，若是發現圖片完全沒有眼睛，則輸出以後就會小於零，那經過 ReLU 以後，後面的神經網路就不會知道有這個特徵了，因為這個特徵被關掉了．)．\n",
    "\n",
    "![](http://cs231n.github.io/assets/nn1/relu.jpeg)\n",
    "\n",
    "如下圖，就是經過 ReLU 後的結果，只剩下紅色大於零的輸出．"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3ccacf5590>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1)) + b_conv1\n",
    "max_pool_2x2(h_conv1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 最大池化器 MaxPooling\n",
    "\n",
    "好的，convolutional layer 的最後一個地方就是 max pooling 了，話說我一直不太喜歡池化器這個翻譯...因為好饒口啊．\n",
    "\n",
    "記得前面有提到說 CNN 有個目標就是想要把參數降低，而我們學習是為了學習特徵，因此不一定要從高清（？中學習，可以把它變得沒那麼清楚一點．這裡做的事情就是 `downsampling`！那要怎麼樣既 down sampling 又保留特徵呢？以下就是一個示範：\n",
    "\n",
    "首先我們用一個 2x2 的矩陣來掃過輸入 (stride = 2)，然後在每個紅色區域裡都找那個區域裡最大值當作輸出，就這樣就完成了 down sampling 了！\n",
    "\n",
    "![](http://imgur.com/MxuEsSo.gif)\n",
    "\n",
    "以下就是經過 max-pooling 的結果了！"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第二卷積層輸出\n",
    "\n",
    "前一篇中我們主要觀察了第一個卷積層的輸出以及內部結構．那我們今天要來觀察的就是第二個卷積層的作用．\n",
    "\n",
    "還記得前一層中最後的結果是 14 x 14 x 32 的輸出，而這輸出就是要在把它餵入第二個卷積層．第二個卷積層構造跟前一個幾乎是一模一樣\n",
    "\n",
    "* 5 x 5 的過濾器但是會產生 64 個輸出\n",
    "* MaxPooling 再一次，因此會做 downsampling 一次，使得輸出為 7 x 7\n",
    "* 一樣有 ReLU\n",
    "\n",
    "好的那讓我們看一下各個位置的輸出:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3ccab5a850>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)\n",
    "h_pool1 = max_pool_2x2(h_conv1)\n",
    "plot_conv_layer(h1,mnist.test.images[0], 16)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "output shape: (10000, 14, 14, 32)\n"
     ]
    }
   ],
   "source": [
    "print \"output shape: %s\" % (h_pool1.eval(feed_dict= {x: mnist.test.images}).shape,)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "我們可以看到經過 MaxPooling 以後 size 變成 14 x 14．\n",
    "## 第二卷積層輸出"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3ccb68ab50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 印出第二層的 weights\n",
    "plot_conv_weights(W_conv2, 64)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nVHXF8/zqDmIZNmxYRjNDozjVATXgdBKVgKDDPZ8NytfzHaG6nbppx9VIzQX5ofpKgTeedwt1SP6X\n04Dk3fq1cKXAiboxbNiwbB7RLc+FhuL0+UMfoEM90AO61HNuS/RuO6gyn1uC6rwf6LbnTANyNT2Q\njuA6p8mgWX1e23HJw8iRI7N+EeznR0rMlY8BxxjQ+b6nkZvqF4MsDRR3M93M2PsVm8y39x0d5ZjG\nr5+E6vbjDPTdx7Udco8aNSo7KkIOz5XfYYcdJEmHHnpoamMdIodT91DEvlZLVfH6q8v9faGOkvo2\nVE/+ZrH5RlS6cYGkd5TUI0F5eZTO0XxxWlm0UYt8sLVIsvoLHQVzpUKhPQKSSeNc1T/PYi2d3/mE\nmcEx2LKmvzF79uysD8jh0ZEsTo+SY6GWjCv+LWd0UjXPviDNIKllbr0/UvUycFmRy/WdzRnjz/WD\nYhd+nlN6odrfrkVWLycoVUaAb7AYhh7BDtisfPMu3UPJGZPru5ULrU2Pm++tpF+u24yBG8KsSeT0\n8eFl+07n3/a3a5nbmTNnZmd7vChcZ9FpL92KjnIXte+9yOAODs/9b7Vjbp955pls70ROX8/sne7Q\noa983tcoe5m/a3xdAytms3h5G43GO/4naZqkxlLy37T+9Pnd/jeUZB1q8oas701Zh5q8Q0nWZU3e\njrc6vFh0dHRMkLSPpC5J9YZkVhglaS1JVzYajdnv8Nl3jaEkqzS05A1Za0fo8SBgKMkqLVvy9uuF\nGggEAoFAYPGIKN9AIBAIBFqAeKEGAoFAINAC9CvKd1nisJcUQ0lWaWjJG7LWjtDjQcBQklVaxuR9\nr0VZDaWIspA3ZA1Zh568Q0nWZU3e/uahdknSZz/72Sxfh3wuz88iqdhzm8jz43Oeq8bPftvKW4OY\n5YLNmTNHZ511VurLIKJLkr785S9nl2XTp9INFZ7gj9zI6nlTpXw2cse8Zu7f//53/dd//VfqyyCj\nS5JOPPHELPcMeb3/9NWLN5CzRY6a56qRa+ry0uY1OZ966in95Cc/SX0ZRHRJ0imnnJIlrjNnXsgD\nGUt5uMjohQE8WRyUih3MmDFDp512WurLIKJL6qtp6on+5GMyv1J1i4jn3zUXWvE8TuTxdYz8fiPL\nrFmz9L3vfS/1ZZDRJfXVpfW9xOcZUMjDi8Uwl8jpY4G8Po+lfWvGjBn69a9/nfoyiOiSpGnTpmnS\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cbaa6ca90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 印出第二層經過過濾器的結果\n",
    "plot_conv_layer(conv2d(h_pool1, W_conv2), mnist.test.images[0], 64)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nr9Sor69nm222MZ9/9rOfAU6Z5be3NTap7zp79mwgbSaFvLW3SKmvr+dXv/qV+SwaWufOnU3fXnvt\nBcBPf/pT0yd1faWWqF3f9q233gLS5lNI/x52QvzXXnstHCF8kikP7T//+U/T9spPHVRjK1b++Mc/\nZl3Hvm/dcMMNABxzzDGm77jjjvNVZ1Y1VEVRFEUJgUAaateuXdlss83MZ9E2DjjgANN34oknAs4S\nZDLTv/TSSwBceeWVZtlVV10FwC9/+UvTJ2WykqS5g4po3nFoqIWKH+cdW/Nx0/zcKu4kqZ1GiWiD\nzz77bGJjaNeuHe+++6757GY52n333QHndbnrrrsC8Prrrzv+A7z33nuAUyPzWwYratasWcOtt97q\na9399tvPtAcMGACk3yvuvffeZtm+++4LpOWG9HlsO/RMmzYtp8o+uVJXV+dacSZb1SQvCtn6ECX2\nverYY48F4MILLzR9dmlHL1RDVRRFUZQQ0AlVURRFUULAb/m2rYC3q6urYzVpZGDrVCo1PaqNi6xB\nvmObh9q2bQvAk08+CTjj38QcftFFF/nddKSyQm7ynnDCCaZ95plnAuk4twMPPNAse/755wHn7zNl\nyhQARowY4bbpgju2+TB+/HgA9t9/f7fFJSWrYMfuLVu2TEySBXke58N6660HpGM5Af773/9KM5Zj\n279/f0fI14cffhjVLr0ouWObBU95VUNVFEVRlBAI5JTUrl07vvrqq6jGUlD06NHD4SYvbvVffvml\n6RNHhqFDh5o+cdOXvh+zawDw+9//PuP+7G3MmDEjn6HnjB3I7ObsINx9992u7UzI7wRw7rnnAs5Q\nK6/g82LmzjvvTHoIQPrcBef5GwVJO+21a9eOP/zhD+azJHawz9Np06blvR/JrJQkq1evNs6SAPPm\nzQPcnZLsJA65huUdeuihpv3YY4/ltI1CRRwuIb+MaaqhKoqiKEoI6ISqKIqiKCEQyOQbl7n3F7/4\nBQD3339/LPtzwzb3grupTEwsY8aMabFsq622atE3evTojPsrAGcvTzNvPsjvBPDggw8C0Lt3b9O3\ndu3aosjactlllzn+u3Hvvfea9qWXXhrxiPzhZsKysydJbLkdUykmwiSvwVxYuXKlea0A6Qw4J510\nkumTuFv7mvvggw+AtCNdMfDdd98xZ84c89kr/lScJSGdYUmuwU6dOplls2bNavHds88+G8BXpqA4\n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\nTKWk2RdffGGWySuLvfbay/Q9+OCDADQ2Npq++vp6U8Q5LmyTWNRl8ubMmWPaUty7lEkyv28qlaJL\nly7ms1hCsh1jsTTKd+3XFHbu6ubYlqkITaoZ6dSpk8OELfLa9+mf/exnAOyzzz6mT6xNkjL0x1cu\nALz66quA89XOyy+/DDiv/c8//9yXzKqhKoqiKEoIBDY4b7PNNqa9/vrrt+h78cUXAZgyZUrGbay3\n3nqmLU9Etu3bTrCeFDNnzhSHCiBddcWWSyo57LvvvqZPiqfL042tnd13331AukB1ISPVVuyn3fnz\n5+e0Ldu5TEhCKxWqqqocT+XiWGIXin/77bcBeP75501fhw4dAOjatSvg/G1Eoz3zzDNNn13FQ0ii\nkpA9zssvvxyAPfbYw/RtuOGGgNP68vjjjwPp895OoO5lobC1mFJBLBh2onn7/EmKtWvXMm/evMDf\nk3e9toXFD7aGVltbG7m1oznNHSdlPLfffrvps9uCVAqTa9S2dvbr1w9wnvvLli0DnBaWFStWqIaq\nKIqiKHGhE6qiKIqihIDfajNbAW9nWj548GDTfu+997Juz445FVU7gBPP1qlUarrflYOSTdY42GST\nTcRkHKms4JTXNk8feeSRgNNsGdQRQZweli71TqTSt29fMZ+X/LFt3769/I6JyioxiwDHHHMMAJtt\ntpnp69SpEwBbbrklAC+88IJZJu2//vWvpm+77bYDnHGoL7zwgtQDjvU8DhspLD99um8RSv48tijq\nY+uF/Rqyrq5OnAk95VUNVVEURVFCIJBTUm1trR2sbTQWP1qpjR02YGfWKST69OkjT9dlg+08JCFB\n+eClme6yyy6mvWrVKuPgpcSDfW6PHj067+1NmzYNiDa0Lh/EsQjgsMMOA9LOZQDLly8H0o4ru+66\nq1m24447AnDBBReYPpF3xowZpu+7776L3dnOTrYjDjb9+/c3fdtuuy0AG220kek7+uijHdsYNmyY\naYul0L7Pz549G3APf4uTVq1asfnmm5vPErIk4TCQdigKA9sByq8zoWqoiqIoihICOqEqiqIoSggE\nMvmuXbs2lNijAw880LTF+SEME2OYBIkza26+BKcpyA92vlc7Q0dc9OjRw2EWk2witkneT6L4Aw44\nwLSffvrpjOvZv2/SWaU6d+4MOMcusakPPPCA6cvmXOWHJDLMRMXhhx9u2vIaJ4lz1w9i0gUYN25c\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3ccb98fc10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 印出第二層經過 ReLU 的結果\n",
    "plot_conv_layer(tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2), mnist.test.images[0], 64)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdQAAAFKCAYAAACkS65fAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3XmcVMW1B/DTw+xsAww7KIoK4jYgiij6FGPANTEqL44r\nHzWiT1zec4kmLi9Gjdszz7gQeWIiMfpcgohRERdQnjuLoCzDYoPIDgMzMMza/f4Y+lpV58x0dXfd\n29P07/v58PncOlTfW9V9u2u677lVoWg0SgAAAJCanHQ3AAAAYF+AARUAAMABDKgAAAAOYEAFAABw\nAAMqAACAAxhQAQAAHMCACgAA4AAGVAAAAAdybSqFQqFuRDSGiMJEVOtng1pRSEQDiGhmNBrd5tdB\nsqmvRNnVX/Q1cDiPfZBNfSXKsP5Go9G4/4ionIiibeRfuU2bk/2XTX3Ntv6ir/tmX7Otv9nU10zr\nr9U3VGr+y4C6du1KeXl5XrCqqopVPPTQQ1msc+fOWvmHH35gdb7//nsWC4VC3nYkEqHa2lqvLT4K\nExHdfffdtP/++3vBd955h1Xcs2cPi3Xv3l0rT5kyJeW2+CxMRFRYWEg5OT9eAaipqUlqZ4WFhVb1\nDjjgAG97z549FA6Hvbb4KEzE+zpo0CBWccWKFSy2a9cu523xUZiIqGPHjpSb++PbvLKyklWUXrO9\n7zWPuo+YDh06sFhdXZ23HYlEYuWwZZtTESYiOuKII7R2qe/hmC+//JLFVq1apZXVz57WdOzY0dtu\namqi3bt3e23xUZiIn8f77bcfq7hjxw4W6927t1beO2hpFi5cyGJdunTxthsbG6m6utpri8/CRM3n\noPq6NDQ0+HrQnj17asfavn2715aW2A6otUREeXl5lJ+f7wXbtWvHKqonWExJSYlWlt7U0r5aOKn9\n/spfS9T8RlQ/aOfNm8cq7n3zaMyT1UVbfFZLRJSTkyO+BolS3+CtKS4ubrEtPhL7Kp2zLp4Lm7b4\nvf/c3Fztj2CJzWsmvRel/TY2NrbYFp/VEjUP8p06dfKCPXr0YBWLiori7sx2QJX+0KA0ncfSe0r6\no9883yORCKtj+3pTgK9tKBSy/nxxQR3rzLa0BElJAAAADth+QyUioq1bt2p/uUh/jc6ZMyephnTt\n2pXF1L8k6+vrk/4ZMhm7d++O/aRBRERPPvmk1eMKCgri1jn33HNZbNq0afaN80Gyz635k9qaNWus\nHqf+ZR3kX51EzX9pq98spF8V1G85Mcccc4xWnjt3Lqsza9YsBy10p6mpKe63LZvXXvp57bLLLmOx\nRx55xL5xPvj000+18oYNG1idsrIyFhswYIBWlr6NLViwgMX2XqpIi1/84hfaz5JTp05ldTZv3sxi\n5nt0/PjxrM7q1atZbOTIkd52ZWUlffDBBwm1N1V+/sT73XffsZh6fldXV9OmTZvi7gffUAEAABzA\ngAoAAOAABlQAAAAHMKACAAA4kFBS0uGHH67d4/W73/2O1Rk9ejSLmRfzhw0bxursvcenzZg4cWLc\nOjNmzGCx0047TStL9/hJCUinnnqqt11VVSXeK+encePGabcYPPHEE6zO008/zWLmxXzpwv17773H\nYuq9yPX19Qm1NVXFxcVa8ph6f11M//79WezBBx/Uyub91URE11xzDYt98skn3nZNTY14j6tf2rdv\nr/U12feZdK/ia6+9lnS7/GLed7to0SJWR4qZpFtQpCQs6T0RlB49elC/fv28svQ+GzVqFIuZ8wc8\n99xzVsdTE/WCfs8SEZWXl2tJWNJ9tzfddFNS+77++utZbOXKld62bX/xDRUAAMABDKgAAAAOYEAF\nAABwAAMqAACAAwklJX399ddaecyYMayOepE8Rpp83IaaANXU1CTOS5lOffr0YTGbyeGPO+44FlNn\nLzEnJg/Cyy+/HLeOlHCTrAkTJnjbW7ZsCTTBxZw9Z9KkSayONLtQt27dWt0PEdGBBx7IYulMXOnc\nubOWYHPQQQexOk1NTSz24Ycfxq3z29/+1kEL3VJnN0uFNHvUQw89xGLpfG379++vvZ5HHHEEqzN5\n8mQWq6io0Mp33nmn1fFefPFFb1ua/9dvFRUV2ntOms3snHPOYbE33nhDK7///vusjpoUGnPfffd5\n2z/88AM99dRTcduIb6gAAAAOYEAFAABwAAMqAACAAwldQ83Pz9dWBpGu9UmrLyS7IoPjBZ1TIt3Y\n/sorryS1L2mNxs8++yypfaWbec183bp1Vo+Trlu2JaWlpSy2ZcsWrfzRRx+xOrfeeqtvbUrGhg0b\ntIkO5s+fb/U4c9WWd999l9VZtmwZi6mrCEWj0bRca1NJk3ZI6zGbpAlKpOv85gLjQa6I9eijj2o5\nG2effTarI01+sHbt2qSOl47cDtWCBQu03AbzOn9LzM9uczF5Ivm9fOONN3rbtq8rvqECAAA4gAEV\nAADAAQyoAAAADmBABQAAcCChpKRs9vjjj7PYDTfcEPdx0uoH0r7amsGDB7OYNLGGmXAmTYjQ1pWU\nlLCYlMwybtw4rSxN7JGpyWWmxsZGrXzGGWdYPU5NSopEImlPSrJJQCIiGj9+vFb++OOPWZ3LL7+c\nxYqKirztdPf10ksvZbHnn38+DS1pW8wJSNQJG2KWLFnCYosXL/a2paRUCb6hAgAAOIABFQAAwAEM\nqAAAAA5gQAUAAHAgoaSk4uJibdYV9YJ8zLBhw1jMXOHiL3/5C6tTV1fHYuqMQg0NDdYJBn6QEpD+\n4z/+g8UeffRRrXzxxRezOo899hiLnXzyyd52dXU1zZs3L4lWJi83N1ebBUtatUFis0qNZODAgd52\nXV2d9QxLfpBmrjJX5CAiWr58uVaWEs7U90eMmvTU2NhIO3bsSKaZSWlqakoqUSzZ2c3UFaIaGxup\nqqoqqf24UlZWxmILFy5ksSlTpmhlKcFHoiYiBZ2UlJubq51vUgKSOeMVEdHIkSN9bZdfpBWPbJhJ\nSNL7dsiQISzWtWtXb9v2XMY3VAAAAAcwoAIAADiAARUAAMAB22uohUT8Zm/pN23pd2ZzlQ7baw0N\nDQ3etnLsQrGyO9b7l1akMC1dutRqX9XV1d62srKB3331jmGuDLJx40arB69evTqpg6rXzOvr67W2\n+Ejcv+0qGuZKLZs3b2Z1pBvA1fdN0Odxstedkr2GqvZVOXZg57HJdpUQ87Xdtm2b1ePU94zy2gfy\n2kp5Jybzur9fbcmkY9h8bhMleS5Ho9G4/4ionIiibeRfuU2bk/2XTX3Ntv6ir/tmX7Otv9nU10zr\nb2hvg1sVCoW6EdEYIgoTUboWxSskogFENDMajdr9+ZiEbOorUXb1F30NHM5jH2RTX4kyq79WAyoA\nAAC0DklJAAAADmBABQAAcAADKgAAgANWt81k0kXhVGVTX4myq7/oa+BwHvsgm/pKlGH93dfSlrMp\nRRv9RV/R1+zrbzb1NdP6azuxQ9iyXhDCQey/d+/eVFBQ4AWlifmlm8bNBQOkydLjTWzR2NhIu3bt\n8triszBR80TQeXl5XtD25udk5efne9uRSCR2E3XY14O2sP/OnTuz2M6dO31uSjB9zc/P1xY9sJ3E\nwo+2pOMYZ555Jott376dxZYsWaKV1YlWYqT3rfr+jkajsQkAxLY4FCYi6tWrl/Y+6tOnD6soTdBi\nxtq1a2d10N27d7fYFp+FiZrfp+rzLb2OewdgzeWXX66VpcVZJOrCJtu2baO3337ba0tLbAfUdH3N\nlvjdlloiooKCAios/HFSDGlgVD+oWqqnDlIx0htTOhEomOe9lqi5neqb02/Sc0cBvbYm6bUNQCB9\nzcnJsf7A9Lst6ThGt27dWMyc8Y2InwO2K/So57Hyvg7ktc3Pz9c+ozp16sQqSisbmedDiudHYK9t\nbm6u9nkqvUbS52ivXr2SOmjPnj1bbEtLkJQEAADgQEJ/mg8fPpw6duzolS+66CJW54orrmCxU045\nRSufeuqprM769etZ7Omnn06keU5VVlZqf7VK67zOmjWLxWzm12yLbH7itflptH///qxOvL+SGxsb\n1fl8A2c7b6sN6SfGf/7zn872n6jBgwdra5RK7TvhhBNY7MQTT9TKf/zjH1mdyZMns5j502nQxo0b\np61vK/368Mgjj7BY9+7dtfJbb73F6nz99dcsps5TvmnTJvr73/+eUHtTsWnTJu0b8qpVq1gdm7mc\nbb/ppVuy79M//OEPcetIa8lecskl3vb8+fPpb3/7W9z94BsqAACAAxhQAQAAHMCACgAA4AAGVAAA\nAAcSSkpatWqVlrZ85ZVXsjpSzDR79uxEDpsWRUVF2m0kCxcuZHVuvvlmFjMTcKTEDSkJoKyszNuu\nqamhioqKhNqbqry8PC3BQUqu+sUvfsFi119/vVZW+xEj3aZgJoHsKyZMmMBi6UxKCofD2nt27ty5\nvh6vd+/e3nZDQwNt3brV1+OZ+vTpQ/369fPK7du3Z3XUpKVESLdRqLetBJ2QeNRRR2m3ynz44Yes\njnR7mnnbnm0C0vnnn+9tV1ZW0vvvv2/b1DZv4sSJLHbppZcmvB98QwUAAHAAAyoAAIADGFABAAAc\nwIAKAADgQEJJSdIE8a5Isy698MILvh0vnk2bNmnJQ9L8u9KMK9KMSjbUxB2b2U1ca2hoiFtn6tSp\nLLZo0SKtvHr1albniCOOYLG+fft623v27IktBhAIc8J46fkeP348i5mTj6uLJ8RIE3an065du7S+\nDh8+nNWRXh9z5irpvSjN/bxhw4ZkmumMOaPTr3/9a1bn/vvvZ7GPP/5YK++dCF3zu9/9jsWuvvrq\nRJvozJo1a7TXQDqP1QStmHvuuUcrS7NgLV68mMXUc0daGMRv5eXlWmKYOnl9jDTj3tlnn62VX375\nZVZn3LhxLKY+d/X19bR58+a4bcQ3VAAAAAcwoAIAADiAARUAAMAB5wtBqqvRxJiL9e63336sTjqv\nl0qU1eJbZK6iQ8SvoUqTOEj9/+abbxJsob+kG+KllWTmzZunldWVTWI++ugjFlMndrC5fuuSzco2\n0mt74YUXamXp/DDrpJs5qcZXX33F6nz77bcstmfPnrj7Vic1iEnnqkGSZ555hsUOOOAAFjPP41Gj\nRrE60vVS9bp6fX19oBNZ2KwQtW7dOhYzrwVKnz3ff/89i5nPUdDMlXwee+yxpPYzffp0q3qlpaXe\ndk1NDa6hAgAABAUDKgAAgAMYUAEAABzAgAoAAOBASklJ0oV7KXHlxRdf1MpSok4muuWWW1jMXJFF\nmiBgzpw5vrXJld27d7PYsmXLWMy8ub+oqIjVkRJVtmzZkkLr3Np///1ZTErU+e6777Sy1IeXXnrJ\nXcN8cOyxx7LY119/zWLmc7JmzRpWp6qqyl3DfHLggQeymJSYZZKSi6TzRHpe2hJpIo877rhDK3/w\nwQeszt133+1bm9LNNgFWWmEsHnxDBQAAcAADKgAAgAMYUAEAABzAgAoAAOBASklJy5cvZ7G1a9ey\nmJm88/DDD6dy2EDk5ORoyVOHHnooq3PrrbeyWG1trVaWHvfcc8+xWG7ujy9FNBpNy4ozqp///Ocs\n9vrrr7OYOXvKs88+y+pIMyWpCU6RSIQ9b0GSkmvMRDoionbt2mnlHj16sDrSTGGqpqamtKzUEfPF\nF19Y1WvryTa2bBKQJFICXpcuXVJtjq+kmZykz+OjjjpKK0uJpNJnFMSHb6gAAAAOYEAFAABwAAMq\nAACAA7bXUPmyEiSvEmJeZyKyWxUhAWJbXO/fXEnEZvUNibTag0Q9nrLtd19bPMaOHTusHrxkyRKt\nLK3IIF0zjEQi0nYgr63JXJGFiKiuro7FNmzYoJWl677xrn2nu69pkrbz2CXpPGlBWl5baaKRnTt3\nspj5fpQmMUm1LY5lzrkcW6astX9EVE5E0Tbyr9ymzcn+y6a+Zlt/0dd9s6/Z1t9s6mum9Te0t8Gt\nCoVC3YhoDBGFiShd6ZiFRDSAiGZGo9Ftfh0km/pKlF39RV8Dh/PYB9nUV6LM6q/VgAoAAACtQ1IS\nAACAAxhQAQAAHLDK8s2k37BTlU19Jcqu/qKvgcN57INs6itRhvV3X8uyyqaMMvQXfUVfs6+/2dTX\nTOuv7X2oYaLmuSzz8vK8oHTPobR4uLnotHSPX2Ehv72nZ8+e2mN++OEHry0+ChMRde3aVeur43tp\nmRbm8g37etBm4djxc3J+vAIgLQp+3HHHsZh5n5u0MHn79u1ZTL2Huba2Nna/btiyzckKEzUviq72\ntaSkhFXs3bs3i5l9s52TV53fd8+ePRQOh722+Cil/ZeWlsats/fDTjNo0CBve9euXbRo0aKU22Ip\niGMw6vPU2NgYu3/b77aEiZo/V9X7/vv168cqSnMS+9GWdBwjPz+fxaRxRJqr20ZBQYG3HYlEYp9Z\nYltibAfUWiKivLw8sRMqaUA1J3uwqUPEB2K1LT6y7qtL0nNCwfy8UUvUvBiAOshIOnXqxGLmze7S\nxAbSgCoN2BTQa2v2VX3jxEiT3JsDiDo5RUt1iIiKi4tbbIuPUtq/+sdkS6S+du7c2XlbLKXlp8AW\nPiMCeW3btWun/SHewnnmt7S9ttLnlfp8tKSFz1qr/bfUFu8xVnsGAACAViW0fFu3bt20bxvXXHMN\nq/Phhx+y2HvvvaeV1Z9yY6qrq1ksxSmxUnLBBRdQ3759vfKvf/1rVkda4uikk07Synt/3tP85Cc/\nYTFpGscgmd8YBw4cyOq8++67Se1b+qVB/UUi6KXqGhoatL9Sb7rpJlZnwIABLDZjxgytLF0GmDx5\nMosNHTpUO3aQzJ/yZ82axeqY5ywR0T/+8Q+t/Oc//5nVkc6H77//3ttOdrrOtkC6DCBN47d+/fog\nmiMqKSnRfl2x/ebVq1cvrSz90iCd2+ovVE1NTeLlHT91795d+0XgrLPOYnX++7//m8XMX6Ck6WBf\nffVVFps+fbq3XV1dzZaqlOAbKgAAgAMYUAEAABzAgAoAAOAABlQAAAAHEkpKWrt2rZZM8ve//53V\nsUkkkm5J8Ps+z0S9/vrr2sXs22+/3dfjDR8+3NvevXs3LV261NfjmQoKCrTkFSlRZdWqVXH3061b\nNxbbto1PLDJq1Chve9euXbRw4ULbpqbMTIK68cYbne1bun+1a9eu3nYCa2o6YR7voosuYnUeeugh\nFhs9erRWlu4dl9bMHTx4sLe9bds2q3PGT1JykZRMada79dZbWR0pMfGZZ57xthsbG8XkSr9s3LhR\nS0Q6+OCDWZ2pU6ey2MUXX6yVTzvtNFanS5cuLLZmzRpvW7plzG89e/bUkmKlBFjpPtRkmUlYNvAN\nFQAAwAEMqAAAAA5gQAUAAHAAAyoAAIADCSUlmTNj2M5kNGTIEK08YsQIVmflypWJNMV3ykoHLVIT\na2J27dqllW2TbdRZOOId1w+9e/fWLuhLCSfSzCTm7EG///3vWZ0777yTxdQ+pqO/ajLHlVdeyf5f\nSm4wE+f+93//t9X9xmzfvj2ZJvpCmiWmvLw8qX2NGzeOxZYsWeJtBz2TjkQ6jx944IG4j7vtttus\n9q8maQZ9HpsJZ3PmzGF15s+fz2JvvfWWVjZnsmuJmnBWW1srzgLnp02bNmkzJV166aWszttvv81i\nGzdubLXcEjVJ0zYJC99QAQAAHMCACgAA4AAGVAAAAAdCNr/7h0KhYUQUf6p9IurRoweLTZs2LW4d\n6abkFhwdjUb5hQFHEumrSy0sMO5rX4lS7++WLVu0cvfu3VNpTiCvrbnAeG2t3ZKOJ598slaWzuOX\nX36ZxY488khvu6amJpYvsE+ex/vvv7+3XVdXF7te1ebPY8fS8tpK56OZv0JENHv27LjHUCcjkfav\nXEMN7LXNycnRchSkNbSldXyTvZbfwuo6rfYX31ABAAAcwIAKAADgAAZUAAAABzCgAgAAOJDQxA42\npFVj5s6dq5UTSEDKGume6MDGsmXLWOyll17SymqyT4x0U7SaXNBW+2uqqqrSyjbJHUT6cyI9P0Hq\n168fi0mTPZir5mzYsMFq/+rrKk1y0VaZySwNDQ1pakny1CSamOXLlye1L2m1Gen9n04uE5CkVbLU\n97vtZxS+oQIAADiAARUAAMABDKgAAAAOYEAFAABwwHlS0htvvMFiS5cudX2YjFFSUsJi0goYAwYM\n8Lbr6urERBE/lZSUaLM1qStLxFRUVLDYxIkTtbL0uBUrVrCYmgTQ0NBAlZWVCbU3HaSVO2z88MMP\n3na6k12k86pPnz4sdvPNN2vl+++/n9XZunUri3Xu3NnbrqmpSaaJaWE+B+prFmOu7pJuubm5WuKX\n7YpdP//5z7Wy9Hn05Zdfspi6AlMkEqH6+nrbpjrRqVMn7TNKOv+S1aFDBxZTVw7DajMAAAABwoAK\nAADgAAZUAAAAB2yvoRbGr9Js1apVLCZdj0iBdVvawv5tr7vU1dV528q1Cb/76h3DbKd6/SBGem1N\n0sot0k3R6rVE5diBvLa210NcSWdfbUjXwsxrrbbnsXrdVDkXAjuPk6W+/4hSnmwkkNc22Taa10yr\nq6tZnb2rXWnU942ynbbPKJfM159I76/yXLfe32g0GvcfEZUTUbSN/Cu3aXOy/7Kpr9nWX/R13+xr\ntvU3m/qaaf21XQ+1GxGNIaIwEdktHuleIRENIKKZ0Wh0m18Hyaa+EmVXf9HXwOE89kE29ZUos/pr\nNaACAABA65CUBAAA4AAGVAAAAAcwoAIAADhgddtMJl0UTlU29ZUou/qLvgYO57EPsqmvRBnW330t\nbTmbUrTRX/QVfc2+/mZTXzOtv7YTO4Qt62mTF8eYEw9LNw0ffvjhLLZnzx5vu6amJjY5u3VbkhQm\nImrXrp028bR0U/HAgQNZzOzb3hNCc/TRR7OYeiP97t276dtvv/Xa4jPxGNLr+Morr7DY5s2btfK7\n777L6syZM4fF1EnUlcUAxLY4JO7fdgGDINriev+5ubmUk/PjlZ2gJzRX2xLEMQYPHkzFxcVeMNkF\nDVy0xe/99+jRg/Lz871gVVUVqyjF/GhLEMcoLS2lvLw8L7hlyxZW0Wbyh3bt2lkdVH3fRKPR2L7D\nrT3GdkC1/pqtDkIx6pPQUh31AzamhY77/ZW/lqi5jVI7VUVFRSxmvqDSgFpaWspiLZz4Qfy8IR5D\nPZliDjvsMBYzB6MFCxawOuqbPkZ67lpqi0Pi/qU/HgIQSF9zcnLE1zJggZ3HxcXF1LFjxwAOF78t\nfu8/Pz9fWwEmTav7BPba5uXlUUFBgRdM9ryO97ku7V+ZNanV/qb9nQYAALAvSOlP88WLF7OY9NPt\noEGDtPLzzz/P6kyfPp3FnnjiCW9b+pnYTyeddBJ16dLFK48cOZLVOfHEE1ns97//vVaeMWMGq7N8\n+XIW69+/v7edpp/lNFIbDjnkkLiPe/bZZ1nslltuYbE//OEP3vbWrVut5gl2ZcCAAdpf9tJarGPG\njGGxc889VyuvWbOG1Zk0aRKLpXOt17ZwLgWprKyMevfu7ZVnz57N6sycOZPF1q5dq5Xvu+8+Vkd6\nvdPJZs1k6dch85wYMWIEq7N+/XoW+/777xNonXubNm3Svl0mOybYzgmczNzB+IYKAADgAAZUAAAA\nBzCgAgAAOIABFQAAwIGEkpJOPPFE7fYW6V49m5Tkf/mXf2Gx3/72tywmLXwblA8++EArz5o1i9X5\n85//zGJvvPGGVpYSIKQErKeffjrRJrZJjz32GItdccUVaWhJy8LhcNw6ixYtYrF33nlHK9um36v3\nRUYiEXERdr8UFRVpt59JC8cnS7olzPY58cuUKVO0spRctK8YN24cde/e3StL91Ob5ywR0bx587Ty\n559/zuqoSZJtRYcOHbRb3LZv387q9OjRg8XM5CIpwVRKcJKeu3jwDRUAAMABDKgAAAAOYEAFAABw\nAAMqAACAAwklJe3YsYMaGhq8sjRvq+TCCy/Uyi+++CKrc+edd7KYOm9jJBLRju23/Px8bS5Haa5d\ns18txTJBXl6e1l8pSUxK5jFnRjrrrLNYnW+++Sb1BgZs1KhRLPbXv/417uPUJJEYaRLvoKgLTLg2\ndepU3/YdNHOhC+lcl+bKVT+jgvbaa6/FXcDDxuWXX85i0qxQ6Z4pyWaif3OxDsn999/PYq+++iqL\n/d///Z+33dTUZDVXMr6hAgAAOIABFQAAwAEMqAAAAA4kdA21oqJCu8722WefWT3utttu08rSNVSJ\nugpCdXW19TVbF2xW6ZDWaw16VRxXzOvT0jVtiXlz/7XXXmv1OPUG7Wg0mtbnrX379ix20kknsZh5\nrWnIkCFW+0/nNVQ/XXrppelugjPmakfjxo1jddJ5vVQSCoWcrHX705/+lMXKy8tZrC29Z4mIunbt\nymLSpCnm+LNz505W595772UxdR1vaRITCb6hAgAAOIABFQAAwAEMqAAAAA5gQAUAAHAgoaQkG+Zq\nD0REZWVlcR/X1i74m6TVF9J9o3NbMHz4cK1srmTREjWhKxKJpDXBYfTo0Sz25ptvxn3cDTfcwGJX\nX321kzaBG8cddxyLdenShcXMRJWXX37Ztzalm5lgM2fOHFZHStTbvXu3b21KhpRcJH2O3HXXXVr5\nmGOOsdq/mvAViUTsHmNVCwAAAFqFARUAAMABDKgAAAAOYEAFAABwIKGkpPr6em11A8kjjzySVEOk\ni8kfffRRUvtywVxtRkpAevLJJ1nMXLXixhtvZHXMWVmI9FlIIpEI1dXVJdTeVPXr109LDJPaKPV3\n8eLFWtk2KUmd5aShoYG2bt1q21TnZsyYYVXPTNSYPHmyH81pEy644AKt/Prrr7M6Qa7+lCzb2dzM\n/maCLl26UH5+vlc+7LDDWJ358+ezmDnjl/TadujQgcXaWlKSOpNRzMUXX8xiX3/9tVb+6quvrPZf\nWlrqbdfX11vNeIZvqAAAAA5gQAUAAHAAAyoAAIADttdQC4nsZtzfs2dPUg2xnc0/1hYfFRLZ3ci7\ndu1aFjMfJ61+IPVVfZyy7XdfvWPYrK4j9TfZlVTU62+NjY1aW3yU0v7N6/wpXlNq032trKzUygm8\nP523JYgTSL3gAAAe4klEQVRjmP1NUSCvrXkNu6qqilVU3luebdu2aWUpfyWB6+Npe22lz2izb0RE\nS5cuTeqg6mei8ny03t9oNBr3HxGVE1G0jfwrt2lzsv+yqa/Z1l/0dd/sa7b1N5v6mmn9De1tcKtC\noVA3IhpDRGEi4l+5glFIRAOIaGY0GuV/hjiSTX0lyq7+oq+Bw3nsg2zqK1Fm9ddqQAUAAIDWISkJ\nAADAAQyoAAAADlhl+WbSb9ipyqa+EmVXf9HXwOE89kE29ZUow/q7r2VZZVNGGfqLvqKv2dffbOpr\npvXX9j7UsBQ88MADWWzXrl0sZs7/W1NTw+pUV1dbNkVui0NO919SUsJiO3bsYDF1XspoNBq7f8xp\nW1ogHqN79+4sdvjhh7PYwQcfrJWl+9eke+E+//xzb7u2tjZ2j6vYFofCRM3zJqvnpNTmwkJ+u5nZ\nD6lfkjS9tmGi5vlI1eNv2LDB58O23JZMP0anTp1ajdXX19PmzZuDaIv1/g855BAWa9eunVaW7kOV\nFmFfs2aNt93Q0BC759O6LSkIEzW3W33fSu8/dU70lupJdSTqZ0BTU1NsjoVwa4+xHVDFr9lFRUUs\nJk0QYA6oNpMIJNoWh6z3Ly0UsPcvKo80gbOkhdXhg/h5QzyGOul2jPTHQZ8+fbSyNKm/NGAVFxdb\nt8WhWqLm1019viXS/8d7jM2+Anxta4mazz910YM0Sdt57JL0QSz94RVAW8T9S59H0vvM7Ic0MEl/\nPLRwHgX22tq8b+Mt3mJbh4j/4aG2pSVISgIAAHAgoeXbTN9++y2LSX8RXXvttVp5yJAhrM6UKVNY\nTJ3qrr6+njZu3JhMM31jfhuV2E7NF/RybfFs2rSJxaZNm2YVs6EujWT706kr++23n/brivTN47jj\njmMxc/k66a/liRMnspj6E/+2bdvo7bffTqi9qbj77ru1n/2kb1THH388ix177LFaWfpZUFqq74MP\nPvC2KyoqaMKECQm1ty2Tlvk74YQT0tCSZsOHD6eOHTt6ZWmJyYULFya1b3OJNyJ9qcZ0LN3Xt29f\n7fwtLy9nde666y4W++tf/6qVzeXciORpDF944QVv2/ZbLb6hAgAAOIABFQAAwAEMqAAAAA5gQAUA\nAHAgpaQk85YJIqKLL76YxS655BKtLN3P+NZbb7HY3LlzU2hd23Daaaex2KxZs1hMvSWlsbFRvJ/X\nT/369dMu+K9cuTKp/QwYMIDFpNtt1IQzm7VnXdq2bZt2O5OUqDNp0iSrWFs3Y8YM6tatm1d+/vnn\nrR73xRdfxK0jPW+nnHKKt925c2erY7l0yy23UP/+/b2ylCR2zz33sNh//ud/xt23VEe9vaSpqSnV\nNXITUllZqa23vGLFClbno48+YrHrr79eKy9ZsoTVUe85jVGPFXQiIVFzm9TkoPvvv5/VeeCBB1hM\nWpPahpq4aPsZhW+oAAAADmBABQAAcAADKgAAgAMYUAEAABxIKSlp/fr1LPbQQw9ZxUzSzDSZ6Jpr\nrtHKTz/9tNXjpAnzg1RcXKzNcmXOLkJEdNJJJ7GYmYQ0efJkVufBBx9kse3btyfRSjfat2+vzUt6\nzDHHsDrSwg9HHXWUVpaSlMzFAojk5yQoc+fO1WaCkuZjlZIEb7nlFq38y1/+ktW5++67Wcx2Rhm/\nPPzww1p5wYIFrM5zzz3HYj179tTKL774IqszevRoFhszZoy3XVVVRZ9++ql1W1O1atUqrWz2gYjP\neEXEZwqSZnvq0aMHi6X7M6p79+7aHOMdOnRgdZYvXx53P1Li0u23385i6gxjNTU1YtKXCd9QAQAA\nHMCACgAA4AAGVAAAAAdSuoaarPPOO4/F1JvPYz777LMgmpM0afWJs846SyvbXkNNt4qKCq182WWX\nsTpdu3ZlMXPShtWrV7M6ZWVlKbbOrR9++EErS22WFliurKzUyr/5zW9Ynfvuu4/F1BVBmpqaqKam\nxrqtqcrLy9MmsZBWNbruuutY7JFHHtHKV199NauTjpv7EyVdL5WYqytJ10ul9Z/ff/99b9tm9Sk/\n7V3cXPPmm2/GfdzYsWNZTFpJSL0+no6+bt++XWuD+T62NXLkSKt66nqoLayNyuAbKgAAgAMYUAEA\nABzAgAoAAOAABlQAAAAH0pKUJF0Uvvnmm9PQktScfPLJLJbuG9v9JK3aYCb0SCsQLVu2jMXSneAQ\nj5mARMQTzqSVdSTV1dUumuTE559/zmJLly5lsa+++korX3XVVayOlKi0r5AmwNizZ08aWmKvb9++\nLCYl7jz55JNaWZ3AIOaJJ55gMTW5LRKJtMmktIEDB7KYObnHr371K1ZHmtxk3bp13nZDQ4PV8fEN\nFQAAwAEMqAAAAA5gQAUAAHAAAyoAAIADgSQlmTPl/POf/wzisE5Js/1cdNFFcR8nJSm1xSQcGzYz\n/EjJPFIyUzqVlpZqq1aYs+QQNc9oZDKTUqREHWnGr23btiXTTCdqa2u1hAopkWjhwoVx92ObgFRY\nWOhtRyIRqq+vt3qcKyUlJVryzKhRo1gdKQnLTJwzZwAjks+TdMrLy6OcnB+/E0mrxgwdOpTFvvji\nC60sJaq1tb4SEeXn52szFu3atYvVkd63f/vb37TynDlzWB31nInZunWrt237mY1vqAAAAA5gQAUA\nAHAAAyoAAIADttdQC+NXaZl57S03N6VLtym1Jdn9S9cPbVawT/F6qd99dX6MSCSSysMDeW3NG9Jt\nX6Oqqqq4dRK42T2QvprXlPxe6UZ9/ZXtwM5j8/mX3qM21/Rtb+RvrS0+KiRqPm/V51vKX5AmdjCv\n6WfKZ5TNZ4u0mtLatWu1svTaSs+BGlO2W+9vNBqN+4+Iyoko2kb+ldu0Odl/2dTXbOsv+rpv9jXb\n+ptNfc20/ob2NrhVoVCoGxGNIaIwEaUrZbOQiAYQ0cxoNOpb2mQ29ZUou/qLvgYO57EPsqmvRJnV\nX6sBFQAAAFqHpCQAAAAHMKACAAA4gAEVAADAAav7VzLponCqsqmvRNnVX/Q1cDiPfZBNfSXKsP7u\na2nL2ZSijf6ir+hr9vU3m/qaaf21nWEhTNQ88bc6ifDmzZtZRenm29LS0rgHqK6uZjHpJt1YW3zk\n9/5FHTp08LabmppiE7EH0ZYwUfMk/upE/ilO0KCRJvJQJ5FvaGig7du3e23xUZiIqKioKO4k2wEI\nZ/j+ExEO6hi5ubnaedy5c2dWUZ303M+2ZPD+RR07dvS2m5qaYpOEBNEW62PYTBokTYRfUFDAYi1M\n3NNqW2wH1NpYQ9QDSyupSMwOSI9TV02waYuP0vKTgvoBrwiiLbVEfEB1SdqvutqL2RYf1RI1P9cp\nztblrC0ZvP9EBHoeq58l0odnUG3J4P2LWnjPBPba2rD5DJM+axM4T1ptC5KSAAAAHEjoz/TjjjtO\n+/lWXfsw5s0332SxjRs3auW2tj6mS8OGDdPK8+fPZ3VOP/10FtuwYYO3XVNTQxUVFe4b14ri4mLt\nL1CbeYqJiHr16qWV+/Tpw+rst99+LKauwZnArxNOjBgxgrp06eKVP/nkE1Zn/fr1cffT1tY+TZb0\nF7s5B7D0k1gLl2TSqkOHDtq3jZ/+9KeszoIFC1js4IMP1sqnnXYaqzNhwgQHLXTnvPPOo+7du3vl\nI488ktX5r//6LxZbuXJl3H3/5Cc/YTH1s23jxo30/PPP2zY1MDfccAOLnXHGGVr5lFNOYXWkebrv\nvPNOb3vz5s300ksvxT0+vqECAAA4gAEVAADAAQyoAAAADmBABQAAcCChpKROnTppyRwPPfQQq3P/\n/fezWH19vVYeNGgQqzN06FAWUxdD3rVrFy1atCiR5qbk8ssv1xJu/v3f/53V6du3L4uZSUjSfXC7\nd+9mMTXZy2Yha9eKi4u1W1n69evH6owdO5bFHnnkEa1sJqARyansZWVl3vaOHTu0pCy/rVq1Skuo\ns0lAkpiJOy05//zzve3Kykp6//33kzpeMi6++GLq2bOnV3700UdZHZt+SAlInTp1YrF0nLuqsrIy\nKikp8cqvvvoqqyO9/66//nqtfMUVV7A69957L4tJC3gHpV27dlpCmZqgFLNixQoWGzFihFb+4osv\nWJ3999+fxaTP+7bG/DxqKWaSkpkef/zxhI+Pb6gAAAAOYEAFAABwAAMqAACAAxhQAQAAHAjtnc2/\n9Uqh0DAimpeTk6MlmNgmZdi4/fbbWeyBBx6Qqh4djUb59EOOxPpqxgcPHszqLlu2zNlxDzzwQG+7\nrq4uluzga1+Jfuzv8ccfryVQ7Z2sXrN3wn6NTaLYhx9+yGLSbCUU0Gub7EIAvXv31spSIlVDQwOL\nXXvttd721q1badq0aUQB9dV8z0qzUo0ePZrFiouLtfLeNmtuvfVWFmshcSWw89hcwENKkgtAIK9t\nWVmZtqjGyJEjWV3p9X7qqae0srQwifn6E+lJoorAXttkH68mqRHZzwKXzGcyvqECAAA4gAEVAADA\nAQyoAAAADiQ0sUNhYaF2I7H023uykr25Pii210tPOukkrXzmmWeyOrfddhuLrV271tu2ua7t2pdf\nfqldb1GvzcTYrKQitX327Nkptc01m+f3qquuYrHJkyfHfZy0ZqTN4/ySm5urva7SSk8zZ86Mu5/D\nDjuMxdrijf6VlZVx18SU1uI1J5/JBOqKTUREc+fOTWo/RUVFLNbC9dKMZH4Gv/DCC1aPU3NGpNwI\nCb6hAgAAOIABFQAAwAEMqAAAAA5gQAUAAHAgoaQkG1Iyy65du7Tyz372M1bnH//4h+um+G7x4sUs\n9swzz2hlKQFJ0tjY6KRNrkiTOEg6duyoldetW8fqSJM4qMk70WjU6SQhiRo2bBiLSasEmb799lsW\nu+aaa5y0Kd3Mm//vuuuuNLXEvSFDhrCYmeCTiQ455BAWq6ioiPs42/d6Jnj66adZTFpNx0YyK2Dh\nGyoAAIADGFABAAAcwIAKAADgAAZUAAAABxJKSiooKNBWcjATUojkWTfMpKQ+ffqwOi5nXXLBXLXi\nV7/6Fatz+OGHs9if/vSnpI6nru4QiUTEGW38lJOTo82oI7220uwpDz/8sFYeP3681fHUGbcikUjg\nSUnqbElSQsr8+XxBiYMOOkgrSyvyTJo0icXUvkajUevVbVzIzc3Vjv/LX/6S1fnLX/7CYmZylbpi\nTltWVFSk9ffqq69mdd566624++nVqxeLpWnlmhb17t2bCgoKvPLQoUNZHZukJEn79u1ZrFu3bt52\nfX192p8P6TNq4sSJLGYmfJaVlbE6rpLS8A0VAADAAQyoAAAADmBABQAAcMD2GmohEf8tWroWJK0Q\nb9qyZYvlYVtui4/Evko3+UrX2ZKlPpfKtt999Y5hvpa2qyuoq+QQEVVVVVk9Tj2ecj0zkNfWZLu6\nj3lde/ny5VaPU/cfdF/N19VmxSAit+c2BXgem9fiN23axCraTGRge/631hYfFRLxNkrX9JMl5TSo\nK/Ioxw7stTVJbbR5L6e4kk7r/Y1Go3H/EVE5EUXbyL9ymzYn+y+b+ppt/UVf982+Zlt/s6mvmdbf\n0N4GtyoUCnUjojFEFCaiYNNPf1RIRAOIaGY0GrX7MzsJ2dRXouzqL/oaOJzHPsimvhJlVn+tBlQA\nAABoHZKSAAAAHMCACgAA4IBVlm8m/YadqmzqK1F29Rd9DRzOYx9kU1+JMqy/+1qWVTZllKG/6Cv6\nmn39zaa+Zlp/be9DDUvBc889l8XOOOMMFuvevbtWLikpYXVmzpzJYuo8sdGotwi12BaH/N5/IsL7\nwjFKS0tZTF2Ivq6uLnafr99tSWn/hYX6LWjSfMtdu3ZlMXWe5vr6etq8eXPKbbHg9/5F6hywTU1N\nsecoiLaEiZrn4FXnt1W3Y3bu3Mli5lzitvcq5ub++BG6r39GpamvKR9DnduZSL5/VZoXWJ272PYz\nynZAFb9mSx+U0qrx5mT45gBLRLR06VIWUyeJUG5Q9/srf7p+UpAE0Rbfj5Gfn89i5uAUUFtS2r/N\npCXqggoxmdjXZJkfXnsFdh4XFBRoz7e0WIc0sUML7Y4rmz6jQqGQFG7zn1EttFuj/rEQk8z7FklJ\nAAAADiS0fNu//du/Ud++fb2ytOzT5MmTU25UjPkTQ5AGDhyo/XV73XXXsToTJkwIskmBsv3L3sb6\n9etZTP2JLeil28wlvqSlqqSfCs1v2up7Iebjjz9msREjRnjbO3bsoHXr1iXU3lSUlJRo35pHjRrF\n6khLs5m/GEnLYkl/+as/gwe5TF1Mbm6u1l/pm8eMGTNYzLwMtWrVKlZn9OjRLKb+StfY2Cj+nOwX\n8zNKPc9inn32WWfHS3E6xrQxp5GVVFZWWsXiwTdUAAAABzCgAgAAOIABFQAAwAEMqAAAAA4klJS0\naNEibf3LE044gdWRbi0w12C0XQ9VPdaiRYto7Nixtk1N2UEHHaTdU3jPPfewOkceeSSL7dixQyuv\nWbOG1bFJ4w7aqFGjqHPnzl5Zuo3g7LPPZrErr7xSKz/++OOszsqVK1ls+vTp3nZ9fX2qaxQmZOjQ\noVpf33nnHVZHSoI78MADtfInn3zC6owZM4bF1GQOmwQJl8zzcdq0aayOFDNJ57/0/lcTzHbv3k2L\nFy+2aKU7UjKRqaysLKl9S8lM6ns56Pe12ddvvvnG6nGzZ8/Wyueccw6rY7uucZDOOuss7d7QE088\nkdX59ttvWcz8bLFNcFXfFw0NDey9JME3VAAAAAcwoAIAADiAARUAAMABDKgAAAAOhGwu0IZCoWFE\nNM/PhqxYsYLFDjroIG97/vz5dPTRRxMRHR2NRuf71Y5YX81ZSGwv+JuzJ6l9iHnggQdYzEzc2svX\nvhIF89omIJDX1ozvt99+rO6ZZ57JYk899ZS5P1anf//+LKbOntPU1ES7d+8mCqivoVBIa6ffsxep\nSSPKzEE4jx1y3ddLLrmExaS51dXPrRUrVsRm2Mq41/bwww9nMenzXZ1xKxqNxhIKW+0vvqECAAA4\ngAEVAADAAQyoAAAADiQ0sYMNaZWOurq6uI9Tb7SPSecECKtXr07q+DfddJNWHjRokKsmpZ201m1F\nRUUaWuKWOoFIzOrVq1nMPB86derE6kjXwltYVzEQ0WjUyUpNtu/r7du3a8dOt/3335/FDjjgABYz\nJzIZMmQIq/OnP/3JXcPakKlTp7KY9Nq1xQlpbJh9kVZJMz+3ifikKDbwDRUAAMABDKgAAAAOYEAF\nAABwAAMqAACAAyklJUkXs2+77TYWW79+vVbetGkTqyOtEtCWnH766Sx2/PHHs9idd94ZRHN8J/VN\nSvDYF5KSTj31VBYbNmwYi82cOVMrS8kt5rlORLRnzx5vW12Npa0477zzWOy1117TylLS4ObNm1ms\nLSQiqY466igWk87ZO+64QytfeumlvrXJL7/5zW9Y7L777ov7uMrKSha78MILnbQpaP369WMxc5KK\n8ePH+3Z8fEMFAABwAAMqAACAAxhQAQAAHMCACgAA4EBKSUlSokJpaSmLmYkaX331FasjJQF07drV\n225sbKSqqqpkmpmUXr16abPD9O3bl9VZs2YNi7388sta2Vx9hoho0qRJDlroL+l1XLx4cRpa4j9p\nBRZpRSCTlNxSUlLCYupMSY2NjVqSUtCk2W7MBCQiog4dOmhldQak1qizRykr66TNG2+8YVUvE5OQ\nTFICkvRZa35uSSvLvPTSS+4a5khRUZE2o9XIkSNZnbvuuovFHn30Ua3csWNHVqe6utpBC/ENFQAA\nwAkMqAAAAA5gQAUAAHDA9hqquFzGqlWrWKympibuzlauXMlie1dD16g3iSs3xPu9dEchEVFDQ4MW\n3Lp1a1I727JlS8pt8Zl4DGmlhQCu/QXy2pqSvX4iXXs1zxsi/dxWttPSV9uJF8wJKJJ5XIDv2aCO\nYSstr61k2bJlLLZhwwatnGJuSmCvrfl+k9q9fPlyFjM/u1OcXKX1/saWd2rtHxGVE1G0jfwrt2lz\nsv+yqa/Z1l/0dd/sa7b1N5v6mmn9De1tcKtCoVA3IhpDRGEiqo37AH8UEtEAIpoZjUb5opOOZFNf\nibKrv+hr4HAe+yCb+kqUWf21GlABAACgdUhKAgAAcAADKgAAgAMYUAEAABywum0mky4Kpyqb+kqU\nXf1FXwOH89gH2dRXogzr776WtpxNKdroL/qKvmZff7Opr5nWX9uJHcJERAMGDKCioiIvqE5UHPPd\nd9+xWK9evbTyunXrWJ26ujrLpjS3xUd+7z8R4bZ+jPz8fK1cXFxs9bguXbp423V1dbEFFFJqi4Uw\nEVH79u21c1ed0D3GnByeiN9YvvfNrpEmkd+2TfyDNtx6U1MWJmpewCI398e3ufQ+kyZVOfLII7Wy\nucAFEVFtLf+yoD5HyoIWYcs2pyJMRDR06FDttfv0009ZRam/frTF7/3n5+dTTs6PV+2k1yMA4X3k\nGExeXp63HY1GY+dNq22xHVBriZpn+2/fvr0XlAZUKaYOwkSknQRJ8PusSddPCpIg2pLSMczXUv3w\nbo15Trhoi4VaouZzVG2nuhpMjPSHgc2AmsCsS4H0NTc3V/tgkAYTacYn848M6Y8CacYZaV8U4Hnc\noUMHbcUfaXWdoNri9/5zcnLEz9uAtfnPqGSpn23Ked1qW5CUBAAA4EBK66F+/vnnLDZ8+HAWGzVq\nlFY+++yzWZ0PP/yQxdR5cOvq6sSfivcVLfy8EJgDDjhA+9Z4/PHHszpPPfUUi6ntJpK/AU2ePJnF\npkyZ4m1L3/T8FIlEtG9X0tzS+wrzm6X0/hw/fjyLTZ8+XStLz1Gavv216uOPP45bp6ysjMUuu+wy\nrXzooYeyOrNmzWIxc63NIJk/8ZqXX4iITjjhBBaTPmv3Zeb6p67WPpXgGyoAAIADGFABAAAcwIAK\nAADgAAZUAAAABxJKSlq6dGncOl999RWLbdy4USvbJhcdffTR3rbNwuWZTFqYOkjm/cNLlixhdf7n\nf/4nqX3fe++9LKYmVNTX1ye132SNHTuWunfv7pXvuOMOVqdfv34sZp6DamJVzMSJE1lMTfaKRCKJ\n3HOdssGDB2u3AEnvTylmkhLLKisrWUy95zwSiaT9vJYsXLjQKmaaNm0ai6UzKal3795UUFDglceO\nHcvqmAk5RESbN2/WyldddRWrI91KNmHChGSaGSjplkybJKRDDjmExSoqKhI/fsKPAAAAAAYDKgAA\ngAMYUAEAABzAgAoAAOBAyGaWmlAoNIyI5o0cOZI6d+7sxc0JtImIHnzwQRY78cQTtfLcuXMTb+mP\njo5Go/NT2UFrYn09/vjjtb6+9dZbrO7OnTtZTJ1H1AFf+0r0Y3/79eunJSKUlpayutLk2zbJHJK+\nfft62/X19bFZsQJ5bbt06aLN8GQmabimzhscjUZjszQF0le/9p+gwM5jm7pqQlqMOisbEdFjjz3G\n6tx4440sps6oVFtbS+FwmCjDXltpDEhgFqw29draOP/881nsX//1X1nsggsukB7ean/xDRUAAMAB\nDKgAAAAOYEAFAABwIKGJHczFenfs2MHq3HrrrSyW4jXTtPjkk0+0crIra0g3Q0+aNCmpffnJnGzD\n7xVYNmzY4G2ne7UZiXrDfEyyEzIEvXIQ/GjAgAFWsdmzZ2vlm266idWRYgcddJC3nSmv8yuvvKKV\n583jlyel52jv9eGMZ/afyN3KSfiGCgAA4AAGVAAAAAcwoAIAADiAARUAAMCBhJKSTNIkBg8//HAq\nu9znvPfee+luQlJ+9rOfsdj06dNZTF1JhYhoz549VvtXJzuIRCJtLqEjyBVh2qIrrrhCKz/77LNp\naklqpEQaKXb66adr5bfffttq/34n7/nhiCOO0MqDBw9OU0uC8fHHH2tlP5Nk8Q0VAADAAQyoAAAA\nDmBABQAAcAADKgAAgAMpJSW98847rtrR5pirr0jJBzfffDOLjRgxQiu3sGJBm6TOFiIlIEnMJCR1\nhZ4YaVUetV5DQ4M465Zf8vLytNVmzjnnHFanY8eOLGYmKr377rusjrQijzoTVDQaTWsC1j333GMV\n++Mf/6iVq6qqWB1pxhn1eU13XxNhJiG1b9+e1ZFe23gzbvnJ/IzKz89ndaRZkMzz+MUXX2R1rrvu\nOharr6/3tpuamqimpiah9qaLOevZsccea/U4dVUi288ofEMFAABwAAMqAACAAxhQAQAAHLC9hloY\nv0pg/G5LIZF+vaAlmzZtYrHVq1c7b4vPvGO4WPXF9ppSQ0ODt61cZwvktTWv60nXRtT2xZjnhNTX\nSCTSagOU5ziQvprWr19v9eCFCxdq5crKSqvHmdeLW2uLY06PIb22Cbw/0vIZJbV5wYIFLGY+7rvv\nvmN1pGvf6v6V87zNv7bLli1L6nFJfUZFo9G4/4ionIiibeRfuU2bk/2XTX3Ntv6ir/tmX7Otv9nU\n10zrb2hvg1sVCoW6EdEYIgoTEU91C0YhEQ0gopnRaHSbXwfJpr4SZVd/0dfA4Tz2QTb1lSiz+ms1\noAIAAEDrkJQEAADgAAZUAAAABzCgAgAAOIABFQAAwAEMqAAAAA5gQAUAAHAAAyoAAIAD/w/c1XXN\n5ncY2gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f3cba81e090>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 印出第二層經過 MaxPooling 的結果\n",
    "plot_conv_layer(max_pool_2x2(tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)), mnist.test.images[0], 64)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 好的我實在不知道它學出了什麼特徵了！\n",
    "## 但可以從白點的位置看到，第二層相比第一層會針對更小的特徵起反應．"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 全連結層 Fully Connected Layer\n",
    "為什麼最後需要這一個全連結層呢？\n",
    "可以想像的是，前面的層學出了很多的 **特徵** ，而這些特徵的 **組合** 可以幫助我們分辨現在這個影像輸入是哪一個數字！然後加入全連結層是一個非常簡便的方法來把這些特徵集合組合在一起然後從中做分類．"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dropout\n",
    "而在全連結層之後會接一個 dropout 函數，而它是為了來避免 overfitting 的神器，通常在訓練過程會使用（這裡的 p = 0.5）意思就是會這些神經元會隨機的被關掉，要這樣的做的原因是避免神經網路在訓練的時候防止特徵之間有合作的關係．\n",
    "隨機的關掉一些節點後，原本的神經網路就被逼迫著從剩下不完整的網路來學習，而不是每次都透過特定神經元的特徵來分類．\n",
    "通俗的講法就是，我們要百般刁難這個網路，讓它在各種很艱困的情形下學習，**不經一番寒徹骨，哪得梅花撲鼻香**（怎麼越來越覺得訓練網路好像在做軍事訓練一樣．．．）\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# '深度'學習\n",
    "看完了以上 CNN 的結構以後，那為什麼這個方法叫做**深度**學習呢？\n",
    "\n",
    "因為呀就是大家發現如果**越多層**效果會越好!!\n",
    "\n",
    "試了一下把第二個卷積層拿掉以後，準確率就掉到了 98.88%．\n",
    "而在知名的圖片比賽 ImageNet，更可以看到這幾年贏的模型，可說是越來越深呢．．．\n",
    "![](https://pic2.zhimg.com/v2-a2e264580fd9856daccf20eb15c32571_b.jpg)\n",
    "(原圖連結：https://www.zhihu.com/question/43370067）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 今日心得\n",
    "今天從第二層的輸出看到了和第一層不同辨識特徵的差別，然後了解了為什麼後面還要接一個全連接層和 dropout 的原因．\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
